def gcd(a, b):
    """
    最大公约数
    :param a:
    :param b:
    :return:
    """
    if a < b:
        a, b = b, a
    while b != 0:
        a, b = b, a % b
    return a


def lcm(a, b):
    """
    最小公倍数
    :param a:
    :param b:
    :return:
    """
    return a * b // gcd(a, b)


def lcm1(a, b):
    """
    最小公倍数
    :param a:
    :param b:
    :return:
    """
    return a*b // gcd(a, b)


def gcd1(a, b):
    """
    最大公约数
    :param a: 
    :param b: 
    :return: 
    """
    if a < b:
        a, b = b, a
    while b != 0:
        a, b = b, a % b
    return a


print(gcd(16, 36))